function zuiduo(str) {
    const arr = str.split("");
    /*
    1.设置初始值为空对象{}
    2.判断数组每一项是否在此对象内
    3.如果不存在，则将此数组元素作为对象的一个属性名
    4.如果存在，则将此属性的属性值加一
    5.每次都将此对象返回，作为下一次的pre
    */
    let obj = arr.reduce((pre, cur) => {
        if (cur in pre) {
            pre[cur]++;
        } else {
            pre[cur] = 1;
        }
        return pre;
    }, {});
    /*
    1.用max记录最多次数，maxChar记录最多的字符
    2.for in遍历对象，每次都将max和键值对比，如果键值比max大，就将键值赋值给max，将此时的键名赋值给maxChar
    4.得到的max和maxChar就是出现次数最多的字符和次数
    */
    let max = 0;
    let maxChar = "a";
    for (k in obj) {
        if (max < obj[k]) {
            max = obj[k];
            maxChar = k;
        }
    }
    console.log(max, maxChar);
}

const str = "eqwdasddad"
zuiduo(str)
